
// ExperimentSchedulerDlg.h : header file
//

#pragma once
#include "xtabctrl.h"
#include "statictestdiag.h"
#include "dynamictestdiag.h"
#include "RawData.h"
typedef enum {StdDevi,MaxMin,MeanOnly,Both} PLOT_TYPE;
// CExperimentSchedulerDlg dialog
class CExperimentSchedulerDlg : public CDialog
{
// Construction
public:
	CExperimentSchedulerDlg(CWnd* pParent = NULL);	// standard constructor

// Dialog Data
	enum { IDD = IDD_EXPERIMENTSCHEDULER_DIALOG };

	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support

// Implementation
protected:
	HICON m_hIcon;

	// Generated message map functions
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	DECLARE_MESSAGE_MAP()
	CXTabCtrl m_cTabCtrl;
	CStaticTestDiag m_cStaDlg;
	CDynamicTestDiag m_cDynDlg;
	PLOT_TYPE m_nPlotType;
public:
	afx_msg void OnBnClickedRadio1();
	afx_msg void OnBnClickedRadio2();
	afx_msg void OnBnClickedRadio3();
	afx_msg void OnBnClickedRadio4();
	afx_msg void OnBnClickedButtonDrawNetworkSize();
	afx_msg void OnBnClickedButtonDrawBudget();
	afx_msg void OnBnClickedButtonDrawDataDistribution();
	afx_msg void OnBnClickedButtonDrawNodeSearchResult();
	afx_msg void OnBnClickedButtonDrawRangeSearchResult();
	afx_msg void OnBnClickedButtonDrawNodeSearchSuccessNo();
	afx_msg void OnBnClickedButtonDrawInDegree();
	afx_msg void OnBnClickedButtonClearX();
	afx_msg void OnBnClickedButtonClearY();
	afx_msg void OnBnClickedButtonClearZ();
private:
	int Draw(const CRawData& cRawData, const PLOT_TYPE nType, const CString & strTitle,const CString & strX,const CString & strY, const CString & strOutputPath);
	void Draw3D(map<int,CRawData> & cData, const CString & strTitle,const CString & strX,const CString & strY,const CString & strZ, const CString & strOutputPath);
	CString m_strFolderPath;
	void UpdataExperimentType(void);
	
	int m_nMaxZ;
	int m_nMinX;
	int m_nMinY;
	int m_nMinZ;
	int m_nMaxX;
	int m_nMaxY;
	CString m_strXAxis;
	CString m_strYAxis;
	CString m_strZAxis;
public:
	afx_msg void OnBnClickedButtonDrawRangeSearchResult2();
	afx_msg void OnBnClickedButtonDrawRangeSearchNodeVisitRatio();
	afx_msg void OnBnClickedButtonDrawRangeSearchCompareRatio();
	afx_msg void OnBnClickedButtonDrawRangeSearchNodeVisitRatio2();
	afx_msg void OnBnClickedButtonDrawRangeSearchCompareRatio2();
};
